A growing number of computer-implemented applications require low-latency and interactive processing over large, graph-structured data. Graph-structured data refers to a collection of vertices, e.g., nodes, and a collection of edges that relate pairs of vertices, and optionally, additional information that describes the vertices and/or edges. Graph-structured data can be used to describe a graph, and the graph can correspond to a network, e.g., a network of physical objects, people, etc. Examples of networks can include a social network or microblogging service where each member of the network is a graph vertex and the various relationships between the members are represented as graph edges. Another example is a road network where points of interests, e.g., cities, landmarks, intersections, are represented as vertices, and the roads connecting them as edges.
Events can occur on or within a network. Networks can experience a large number of events per unit time. For example, a popular social network can receive more than 200,000 events per second, e.g., new posts, message deliveries, queries, etc. Applications built upon such networks can be called upon to perform analysis based on the events occurring in the network. For example, in the case of the road network, an application might need to determine an impact region after a road incident has occurred. Efficient event processing on these graph-structured data can enable complex applications that require such event-processing to perform more timely and accurate analysis for complex events.